#include <REGX52.H>
#include"LCD1602.h"
#include"Delay.h"
#include"Timer.h"

unsigned int Hour,Min,Sec;
void main()
{
	Timer0_Init();
	LCD_Init();
	LCD_ShowString(1,1,"time:");
	LCD_ShowChar(2,3,':');
	LCD_ShowChar(2,6,':');
	while (1)
	{
			LCD_ShowNum(2,1,Hour,2);
			LCD_ShowNum(2,4,Min,2);
			LCD_ShowNum(2,7,Sec,2);
	}
}

void Timer0_Routine() interrupt 1
{	
		// 用于计数1秒
		static unsigned int T0count; //局部静态变量（只能在本函数使用）
    // 重新装载初始值
    TH0 = (65536 - 1000) / 256; // 高8位
    TL0 = (65536 - 1000) % 256; // 低8位
    
    // 1秒定时逻辑
    T0count++;
    if(T0count == 1000)  // 1000ms = 1s
    {
				Sec++;
			if(Sec==60)
			{
				Sec=0;
				Min++;
				if(Min==60)
				{
					Min=0;
					Hour++;
					if(Hour==24)
						Hour=0;
				}
			}
        T0count = 0;
    }
}